Thực đơn
Hạt_nhân_Linux Kiến trúcHạt nhân Linux là một hạt nhân nguyên khối, hỗ trợ đa nhiệm được ưu tiên thực sự (cả ở chế độ người dùng và, kể từ series 2.6, ở chế độ nhân[55][56]),bộ nhớ ảo, thư viện dùng chung, demand loading, chia sẻ thực thi sao chép ghi (thông qua KSM), quản lý bộ nhớ, bộ giao thức Internet và phân luồng
Trình điều khiển thiết bị và phần mở rộng kernel chạy trong không gian kernel (ring 0 trong nhiều kiến trúc CPU), với toàn quyền truy cập vào phần cứng, mặc dù một số ngoại lệ chạy trong không gian người dùng, ví dụ: hệ thống file dựa trên FUSE/CUSE, và các phần của UIO.[57][58] Hệ thống đồ họa mà hầu hết mọi người sử dụng với Linux không chạy trong kernel. Không giống như các hạt nhân nguyên khối tiêu chuẩn, trình điều khiển thiết bị dễ dàng được cấu hình dưới dạng các mô-đun và được tải hoặc không tải trong khi hệ thống đang chạy. Ngoài ra, không giống như các hạt nhân nguyên khối tiêu chuẩn, trình điều khiển thiết bị có thể được xử lý trước trong một số điều kiện nhất định; tính năng này đã được thêm vào để xử lý các ngắt phần cứng một cách chính xác và để hỗ trợ tốt hơn cho đa xử lý đối xứng.[56] Theo lựa chọn, nhân Linux không có Giao diện nhị phân ứng dụng.[59]
Phần cứng cũng được tích hợp vào hệ thống phân cấp file. Giao diện trình điều khiển thiết bị với các ứng dụng người dùng thông qua một mục trong thư mục /dev hoặc /sys .[60] Thông tin quá trình cũng được ánh xạ tới hệ thống file thông qua thư mục /proc.[60]
Linux được viết bằng một phiên bản của ngôn ngữ lập trình C hỗ trợ bởi GCC (đã giới thiệu một số phần mở rộng và thay đổi cho tiêu chuẩn C), cùng với một số phần ngắn viết bằng hợp ngữ (trong cú pháp "AT&T-style" của GCC) cho kiến trúc đích. Bởi vì sự hỗ trợ mở rộng của C mà nó được viết, GCC trong một thời gian dài là trình biên dịch có thể dịch được đúng hạt nhân Linux.
Nhiều ngôn ngữ khác được sử dụng trong nhiều cách, chủ yếu liên quan đến quá trình biên dịch. Bao gồm Perl, Python và nhiều loại shell scripting.
GCC là trình biên dịch mặc định cho nguồn nhân Linux. Năm 2014, Intel ttuyên bố đã sửa đổi kernel để trình biên dịch C của họ cũng có khả năng biên dịch hạt nhân.[61] Có một báo cáo thành công như vậy trong năm 2009, với phiên bản kernel đã được sửa đổi 2.6,22.[62][63]
Từ năm 2010, nỗ lực đã được tiến hành để xây dựng nhân Linux với Clang, một trình biên dịch thay thế cho ngôn ngữ C;[64] kể từ ngày 12 tháng 4 năm 2014, kernel chính thức gần như có thể được biên dịch bằng Clang.[65][66] Dự án dành riêng cho nỗ lực này được đặt tên là LLVMLinux theo cơ sở hạ tầng trình biên dịch LLVM mà Clang được xây dựng.[67] LLVMLinux không nhằm mục đích phân nhánh hạt nhân Linux hoặc LLVM, do đó, đây là một siêu dự án bao gồm các bản vá cuối cùng được gửi cho các dự án ngược dòng. Bằng cách cho phép nhân Linux được Clang biên dịch, trong số các ưu điểm khác, được biết đến với khả năng biên dịch nhanh hơn so với GCC, các nhà phát triển nhân có thể được hưởng lợi từ quy trình làm việc nhanh hơn do thời gian biên dịch ngắn hơn.[68]
Tuân thủ các tiêu chuẩn là một chính sách chung cho các phần bên trong của nhân Linux. Một quy tắc khác là một thành phần hạt nhân không được chấp nhận vào dòng chính của nhân Linux nếu chỉ có phần mềm không gian người dùng độc quyền sử dụng thành phần đó.
Source code portability ensures that a C program written by conforming to a standard can be successfully compiled and run on any system that also conforms to the same standard. The relevant standards, aiming to achieve source code portability of programs, that the development of the Linux kernel, the GNU C Library, and associated utilities try to adhere to, are POSIX and the Single UNIX Specification.
The Linux kernel API of the Linux kernel, representing the kernel's system call interface, is composed of the available system calls.
Binary portability shall guarantee that any program once compiled for a given hardware platform, can be run in its compiled form on any other hardware platform that conforms to the standard. Binary portability is an essential requirement for the commercial viability of independent software vendor (ISV) applications built for the operating systems based on the Linux kernel. Binary compatibility is much more demanding than source code portability; as of February 2014, the only standard concerning itself with binary compatibility is the Linux Standard Base (LSB).
There are several kernel internal APIs utilized between the different subsystems and subsystems of subsystems. Some of them have been kept stable over several releases, others have not. There are no guarantees regarding the in-kernel APIs. Maintainers and contributors are free to augment or change them at any time.[70]
Examples of in-kernel APIs include software frameworks/APIs for the following classes of device drivers:
The Linux kernel developers choose not to maintain a stable in-kernel ABI.[72]
Thực đơn
Hạt_nhân_Linux Kiến trúcLiên quan
Hạt nhân Linux Hạt nhân nguyên tử Hạt nhân phóng xạ Hạt nhân (đại số tuyến tính) Hạt ngô Hạt nano Hạt Nógrád Hạt nêm Hạt nano oxide kẽm Hạt nhân sao chổiTài liệu tham khảo
WikiPedia: Hạt_nhân_Linux http://apcmag.com/node/6735/ http://www.computerworlduk.com/applications/are-to... http://www.extremetech.com/computing/190959-shells... http://www.gartner.com/newsroom/id/2875017 http://www.gisselberglawfirm.com/downloads/linux.p... http://www.h-online.com/open/features/What-s-new-i... http://www.idc.com/getdoc.jsp?containerId=prUS2518... http://www.infoworld.com/article/2655630 http://www.linuxjournal.com/article/2098 http://www.linuxjournal.com/article/2425/